home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2000 June / Internet Magazine June 2000.iso / pc / software / windows / building / wirefusion / html / keyboard / bob98.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-01-03  |  3.6 KB  |  201 lines

  1. import java.awt.Color;
  2. import java.awt.Event;
  3. import java.awt.Font;
  4. import java.awt.FontMetrics;
  5. import java.awt.Graphics;
  6. import java.awt.Image;
  7. import java.awt.Rectangle;
  8. import java.awt.image.PixelGrabber;
  9.  
  10. public class bob98 extends bob {
  11.    // $FF: renamed from: a java.lang.String
  12.    private String field_0;
  13.    // $FF: renamed from: b java.awt.Color
  14.    private Color field_1;
  15.    // $FF: renamed from: c boolean
  16.    private boolean field_2 = true;
  17.    // $FF: renamed from: d java.awt.Font
  18.    private Font field_3;
  19.    // $FF: renamed from: e int
  20.    private int field_4;
  21.    // $FF: renamed from: f int
  22.    private int field_5;
  23.    // $FF: renamed from: g int
  24.    private int field_6;
  25.    // $FF: renamed from: h java.awt.Rectangle[]
  26.    private Rectangle[] field_7;
  27.    // $FF: renamed from: i int[]
  28.    private int[] field_8;
  29.  
  30.    private void _$211062() {
  31.       String var1 = ((bob12)((bob)this).gd(1)).value;
  32.       Font var2 = ((bob17)((bob)this).gd(3)).font;
  33.       if (!var1.equals(this.field_0) || !var2.equals(this.field_3) || super.tr.width != this.field_5 || super.tr.height != this.field_6) {
  34.          this.field_0 = var1;
  35.          this.field_3 = var2;
  36.          this.field_5 = super.tr.width;
  37.          this.field_6 = super.tr.height;
  38.          if (this.field_8 == null || this.field_8.length < this.field_5 * this.field_6) {
  39.             this.field_8 = new int[this.field_5 * this.field_6];
  40.          }
  41.  
  42.          Image var3 = super.a.createImage(this.field_5, this.field_6);
  43.          Graphics var4 = var3.getGraphics();
  44.          var4.setFont(this.field_3);
  45.          FontMetrics var5 = var4.getFontMetrics(this.field_3);
  46.          var4.setColor(Color.black);
  47.          char[] var6 = new char[this.field_0.length()];
  48.          int[] var7 = new int[var6.length * 2 + 10];
  49.          this.field_0.getChars(0, var6.length, var6, 0);
  50.          int var8 = var5.getHeight();
  51.          int var9 = var5.getAscent();
  52.          int var10 = 0;
  53.          int var11 = 0;
  54.  
  55.          for(int var12 = 0; var12 < var6.length; ++var12) {
  56.             boolean var13 = var5.charsWidth(var6, var10, var12 - var10 + 1) > super.tr.width;
  57.             if (var13 && this.field_2) {
  58.                for(int var14 = var12; var14 > var10; --var14) {
  59.                   if (var6[var14] == ' ') {
  60.                      var12 = var14 + 1;
  61.                      var14 = -2;
  62.                   }
  63.                }
  64.  
  65.                var7[var11 * 2] = var10;
  66.                var7[var11 * 2 + 1] = var12 - var10 - 1;
  67.                var10 = var12;
  68.                ++var11;
  69.             } else if (var6[var12] == '\n' || var12 == var6.length - 1) {
  70.                var7[var11 * 2] = var10;
  71.                var7[var11 * 2 + 1] = var6[var12] == '\n' ? var12 - var10 : var12 + 1 - var10;
  72.                var10 = var12 + 1;
  73.                ++var11;
  74.             }
  75.          }
  76.  
  77.          this.field_4 = 0;
  78.  
  79.          for(int var21 = 0; var21 < var11; ++var21) {
  80.             this.field_4 += var7[var21 * 2 + 1];
  81.          }
  82.  
  83.          this.field_7 = new Rectangle[this.field_4];
  84.          int var22 = 0;
  85.          int var15 = 0;
  86.          int var16 = 0;
  87.  
  88.          for(int var17 = 0; var17 < var11; ++var17) {
  89.             for(int var18 = var7[2 * var17]; var18 < var7[2 * var17] + var7[2 * var17 + 1]; ++var18) {
  90.                int var19 = var5.charWidth(var6[var18]);
  91.                var4.drawChars(var6, var18, 1, var22, var15 + var9);
  92.                this.field_7[var16] = new Rectangle(var22, var15, var19, var8);
  93.                ++var16;
  94.                var22 += var19;
  95.             }
  96.  
  97.             var15 += var8;
  98.             var22 = 0;
  99.          }
  100.  
  101.          try {
  102.             PixelGrabber var23 = new PixelGrabber(var3, 0, 0, this.field_5, this.field_6, this.field_8, 0, this.field_5);
  103.             var23.grabPixels();
  104.          } catch (Exception var20) {
  105.          }
  106.  
  107.       }
  108.    }
  109.  
  110.    // $FF: renamed from: ap () void
  111.    public void method_0() {
  112.       this._$211062();
  113.       this._$220490(-1);
  114.    }
  115.  
  116.    private void _$220490(int var1) {
  117.       int var2 = ((bob14)((bob)this).gd(2)).color;
  118.       int[] var3 = ((bob)this).gd(0).fp;
  119.       int var4 = ((bob)this).gd(0).pw;
  120.       int var5 = ((bob)this).gd(0).ph * var4;
  121.       int[] var6 = ((bob)this).gp();
  122.       int var7 = ((bob)this).gw();
  123.       Rectangle var8 = super.tr.intersection(new Rectangle(0, 0, var7, ((bob)this).gh()));
  124.       Rectangle var9;
  125.       if (var1 < 0) {
  126.          var9 = super.tr.intersection(var8);
  127.       } else {
  128.          Rectangle var10 = new Rectangle(this.field_7[var1]);
  129.          var10.translate(super.tr.x, super.tr.y);
  130.          var9 = var10.intersection(var8);
  131.       }
  132.  
  133.       int var20 = var9.x - super.tr.x + (var9.y - super.tr.y) * super.tr.width;
  134.       int var11 = super.tr.width - var9.width;
  135.       int var12 = (var9.y - super.tr.y) * var4;
  136.       int var13 = var9.x + var9.width;
  137.       int var14 = (var9.y + var9.height) * var7;
  138.  
  139.       for(int var16 = var9.y * var7; var16 < var14; var16 += var7) {
  140.          int var17 = var9.x - super.tr.x;
  141.  
  142.          for(int var18 = var9.x; var18 < var13; ++var18) {
  143.             int var19 = var18 + var16;
  144.             if (this.field_8[var20] == -16777216) {
  145.                int var15;
  146.                if (var17 < var4 && var12 < var5 && (var15 = var3[var17 + var12] & 255) != 255) {
  147.                   if (var15 != 0) {
  148.                      var6[var19] = (var15 * ((var2 & 16711935) - (var6[var19] & 16711935)) >>> 8) + var6[var19] & 16711935 | (var15 * ((var2 & '\uff00') - (var6[var19] & '\uff00')) >>> 8) + var6[var19] & '\uff00';
  149.                   }
  150.                } else {
  151.                   var6[var19] = var2;
  152.                }
  153.             }
  154.  
  155.             ++var17;
  156.             ++var20;
  157.          }
  158.  
  159.          var12 += var4;
  160.          var20 += var11;
  161.       }
  162.  
  163.    }
  164.  
  165.    // $FF: renamed from: he (java.awt.Event) void
  166.    public void method_1(Event var1) {
  167.       super.he(var1);
  168.       this._$211062();
  169.       if (var1.id != 6001 && var1.id != 6 && var1.id != 7) {
  170.          if (var1.id == 5) {
  171.             double var8 = (double)0.0F;
  172.             double var4 = (double)0.0F;
  173.  
  174.             for(int var6 = 0; var6 < this.field_4; ++var6) {
  175.                Rectangle var7 = this.field_7[var6];
  176.                var8 = Math.max((double)(var7.x + var7.width), var8);
  177.                var4 = Math.max((double)(var7.y + var7.height), var4);
  178.             }
  179.  
  180.             ((bob)this).ce(new bob13(var8, var4), 1);
  181.          } else if (var1.id == 8) {
  182.             ((bob)this).ce(new bob10((double)this.field_4), 4);
  183.          }
  184.       } else {
  185.          int var2 = (int)((bob10)var1.arg).value - 1;
  186.          if (var2 < 0 || var2 >= this.field_4) {
  187.             return;
  188.          }
  189.  
  190.          if (var1.id == 6001) {
  191.             this._$220490(var2);
  192.          } else if (var1.id == 6) {
  193.             ((bob)this).ce(new bob13((double)(this.field_7[var2].x + super.tr.x), (double)(this.field_7[var2].y + super.tr.y)), 2);
  194.          } else {
  195.             ((bob)this).ce(new bob13((double)this.field_7[var2].width, (double)this.field_7[var2].height), 3);
  196.          }
  197.       }
  198.  
  199.    }
  200. }
  201.